package com.comac.ins.isfd.service;

import com.comac.ins.common.core.domain.R;
import com.comac.ins.common.mybatis.core.page.TableDataInfo;
import com.comac.ins.isfd.domain.bo.IsfdAcousticsPorousMaterialBo;
import com.comac.ins.isfd.domain.bo.query.IsfdAcousticsPorousMaterialQueryBo;
import com.comac.ins.isfd.domain.vo.IsfdAcousticsPorousMaterialVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.Collection;
import java.util.List;

/**
 * 声学多孔材料Service接口
 */
public interface IIsfdAcousticsPorousMaterialService {

    /**
     * 查询声学多孔材料
     *
     * @param id 主键
     * @return 声学多孔材料
     */
    IsfdAcousticsPorousMaterialVo queryById(Long id);

    /**
     * 分页查询声学多孔材料列表
     *
     * @return 声学多孔材料分页列表
     */
    TableDataInfo<IsfdAcousticsPorousMaterialVo> queryPageList(IsfdAcousticsPorousMaterialQueryBo queryBo);

    /**
     * 查询符合条件的声学多孔材料列表
     *
     * @param bo 查询条件
     * @return 声学多孔材料列表
     */
    List<IsfdAcousticsPorousMaterialVo> queryList(IsfdAcousticsPorousMaterialBo bo);


    /**
     * 校验并批量删除声学多孔材料信息
     *
     * @param ids 待删除的主键集合
     * @return 是否删除成功
     */
    Boolean deleteWithValidByIds(Collection<Long> ids);

    R<Void> batchUploadMaterials(MultipartFile[] files);

    Boolean updateMaterial(IsfdAcousticsPorousMaterialBo bo);

    Boolean addMaterial(IsfdAcousticsPorousMaterialBo bo);
}
